/**
 * @description 登录校验中间件
 * @author chengpeng
 */

const {
    ErrorModel
} = require('../model/ResModel')
const {
    loginCheckFailInfo
} = require('../model/ErrorInfo')

/**
 * @description 校验登录状态
 * @author chengpeng
 * @param {object} ctx ctx
 * @param {functioon} next next 
 */
async function loginCheck(ctx, next) {
    if (ctx.session && ctx.session.userInfo) {
        await next()
        return
    }
    // 未登录
    ctx.body = new ErrorModel(loginCheckFailInfo)
}

/**
 * @description 未登录重定向
 * @author chengpeng
 * @param {object} ctx ctx 
 * @param {function} next nextq
 */
async function loginRedirect(ctx, next) {
    if (ctx.session && ctx.session.userInfo) {
        await next()
        return
    }
    const pageUrl = ctx.url
    ctx.redirect('/login?url=' + encodeURIComponent(pageUrl))
}

module.exports = {
    loginCheck,
    loginRedirect
}